#pragma once
#include "type_definition.h"
#include <vector>
#include <string>
#include <set>

class CDTbuilder
{
public:
	CDTbuilder(void);
	~CDTbuilder(void);
	bool set_graph(Graph grp_in);
	bool set_BC_param(int th);
	bool set_BC_param(float th);
	bool set_BC_list(std::vector<std::pair<std::string, float>> BC_list);
	bool build_DT();
	bool set_VertexMap(VertexMap verts);

	std::vector<std::set<std::pair<std::string, bool> > > get_DT_list();
	


private:
	std::set<std::pair<std::string, bool>> DT_from_node(Vertex v);
	int BC_TH;
	Graph loc_graph;
	std::vector<std::pair<std::string, float>> candidate_list;

	std::vector<std::set<std::pair<std::string, bool> > > DT_grp_list;

	VertexMap vm;
	InvVertexMap inv_vm;
	

};

